@@ -18,13 +18,12 @@ from TimeConvert import TimeConvert as tc  | 
            ||
| 18 | 18 | 
                from account.models import UserInfo  | 
            
| 19 | 19 | 
                from coupon.models import UserCouponInfo, CouponInfo  | 
            
| 20 | 20 | 
                from integral.models import SaleclerkSubmitLogInfo  | 
            
| 21 | 
                -from logs.models import MchInfoEncryptLogInfo  | 
            |
| 21 | 
                +from logs.models import MchInfoEncryptLogInfo, ComplementCodeLogInfo  | 
            |
| 22 | 22 | 
                from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo  | 
            
| 23 | 23 | 
                from member.models import GoodsOrderInfo, MemberActivityInfo, MemberActivityGroupShareInfo, GoodsInfo  | 
            
| 24 | 24 | 
                from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo  | 
            
| 25 | 25 | 
                from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,  | 
            
| 26 | 
                - ProductMachineStatusCode, UserStatusCode)  | 
            |
| 27 | 
                -  | 
            |
| 26 | 
                + ProductMachineStatusCode, UserStatusCode, ComplementCodeStatusCode)  | 
            |
| 28 | 27 | 
                 | 
            
| 29 | 28 | 
                WECHAT = settings.WECHAT  | 
            
| 30 | 29 | 
                 | 
            
                @@ -1382,3 +1381,95 @@ def member_goods_create(request):  | 
            ||
| 1382 | 1381 | 
                )  | 
            
| 1383 | 1382 | 
                 | 
            
| 1384 | 1383 | 
                return response(200, 'GoodsInfo Create Success', u'积分商品创建成功')  | 
            
| 1384 | 
                +  | 
            |
| 1385 | 
                +def complement_code_list(request):  | 
            |
| 1386 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 1387 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 1388 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 1389 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 1390 | 
                +    type_ = request.POST.get('type', '')
               | 
            |
| 1391 | 
                +  | 
            |
| 1392 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 1393 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 1394 | 
                +  | 
            |
| 1395 | 
                + try:  | 
            |
| 1396 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 1397 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 1398 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 1399 | 
                +  | 
            |
| 1400 | 
                + logs = ComplementCodeLogInfo.objects.filter(status=True)  | 
            |
| 1401 | 
                + if type_ == 'pass':  | 
            |
| 1402 | 
                + logs = logs.filter(audit_status=ComplementCodeLogInfo.AUDIT_PASS)  | 
            |
| 1403 | 
                +    logs = logs.order_by('-pk')
               | 
            |
| 1404 | 
                +  | 
            |
| 1405 | 
                + count = logs.count()  | 
            |
| 1406 | 
                + logs, left = pagination(logs, page, num)  | 
            |
| 1407 | 
                + logs = [log.data for log in logs]  | 
            |
| 1408 | 
                +  | 
            |
| 1409 | 
                +    return response(200, 'Get Complement Code List Success', u'获取补码列表成功', data={
               | 
            |
| 1410 | 
                + 'logs': logs,  | 
            |
| 1411 | 
                + 'left': left,  | 
            |
| 1412 | 
                + 'count': count  | 
            |
| 1413 | 
                + })  | 
            |
| 1414 | 
                +  | 
            |
| 1415 | 
                +  | 
            |
| 1416 | 
                +@transaction.atomic  | 
            |
| 1417 | 
                +def complement_code_audit(request):  | 
            |
| 1418 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 1419 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 1420 | 
                +    log_id = request.POST.get('log_id', '')
               | 
            |
| 1421 | 
                +    audit_status = int(request.POST.get('audit_status', 0))  # -1 审核不通过, 1 审核通过
               | 
            |
| 1422 | 
                +  | 
            |
| 1423 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 1424 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 1425 | 
                +  | 
            |
| 1426 | 
                + try:  | 
            |
| 1427 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 1428 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 1429 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 1430 | 
                +  | 
            |
| 1431 | 
                + if audit_status not in [ComplementCodeLogInfo.AUDIT_REFUSED, ComplementCodeLogInfo.AUDIT_PASS]:  | 
            |
| 1432 | 
                + return response(ComplementCodeStatusCode.COMPLEMENT_CODE_STATUS_INVALID)  | 
            |
| 1433 | 
                +  | 
            |
| 1434 | 
                + try:  | 
            |
| 1435 | 
                + log = ComplementCodeLogInfo.objects.select_for_update().get(log_id=log_id, status=True)  | 
            |
| 1436 | 
                + except ComplementCodeLogInfo.DoesNotExist:  | 
            |
| 1437 | 
                + return response(ComplementCodeStatusCode.COMPLEMENT_CODE_NOT_FOUND)  | 
            |
| 1438 | 
                +  | 
            |
| 1439 | 
                + if log.audit_status != ComplementCodeLogInfo.AUDIT_TODO:  | 
            |
| 1440 | 
                + return response(ComplementCodeStatusCode.COMPLEMENT_CODE_HAS_AUDITED)  | 
            |
| 1441 | 
                +  | 
            |
| 1442 | 
                + log.audit_status = audit_status  | 
            |
| 1443 | 
                + log.save()  | 
            |
| 1444 | 
                +  | 
            |
| 1445 | 
                + # if log.audit_status == ComplementCodeLogInfo.AUDIT_PASS:  | 
            |
| 1446 | 
                + # # TODO: Send template_message  | 
            |
| 1447 | 
                + # pass  | 
            |
| 1448 | 
                +  | 
            |
| 1449 | 
                + return response()  | 
            |
| 1450 | 
                +  | 
            |
| 1451 | 
                +  | 
            |
| 1452 | 
                +@transaction.atomic  | 
            |
| 1453 | 
                +def complement_code_contacted(request):  | 
            |
| 1454 | 
                +    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
               | 
            |
| 1455 | 
                +    admin_id = request.POST.get('admin_id', '')
               | 
            |
| 1456 | 
                +    log_id = request.POST.get('log_id', '')
               | 
            |
| 1457 | 
                +    is_contacted = int(request.POST.get('is_contacted', 0))  # 0 未联系, 1 已联系
               | 
            |
| 1458 | 
                +  | 
            |
| 1459 | 
                + if brand_id != settings.KODO_DEFAULT_BRAND_ID:  | 
            |
| 1460 | 
                + return response(ProductBrandStatusCode.BRAND_NOT_MATCH)  | 
            |
| 1461 | 
                +  | 
            |
| 1462 | 
                + try:  | 
            |
| 1463 | 
                + administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)  | 
            |
| 1464 | 
                + except AdministratorInfo.DoesNotExist:  | 
            |
| 1465 | 
                + return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)  | 
            |
| 1466 | 
                +  | 
            |
| 1467 | 
                + try:  | 
            |
| 1468 | 
                + log = ComplementCodeLogInfo.objects.select_for_update().get(log_id=log_id, status=True)  | 
            |
| 1469 | 
                + except ComplementCodeLogInfo.DoesNotExist:  | 
            |
| 1470 | 
                + return response(ComplementCodeStatusCode.COMPLEMENT_CODE_NOT_FOUND)  | 
            |
| 1471 | 
                +  | 
            |
| 1472 | 
                + log.is_contacted = is_contacted  | 
            |
| 1473 | 
                + log.save()  | 
            |
| 1474 | 
                +  | 
            |
| 1475 | 
                + return response()  | 
            
                @@ -8,8 +8,6 @@ from django_response import response  | 
            ||
| 8 | 8 | 
                from paginator import pagination  | 
            
| 9 | 9 | 
                 | 
            
| 10 | 10 | 
                from logs.models import ComplementCodeLogInfo  | 
            
| 11 | 
                -from utils.error.errno_utils import ComplementCodeStatusCode  | 
            |
| 12 | 
                -  | 
            |
| 13 | 11 | 
                 | 
            
| 14 | 12 | 
                @logit(res=True)  | 
            
| 15 | 13 | 
                def complement_code(request):  | 
            
                @@ -35,66 +33,4 @@ def complement_code(request):  | 
            ||
| 35 | 33 | 
                 | 
            
| 36 | 34 | 
                     return response(data={
               | 
            
| 37 | 35 | 
                'log_id': log.log_id,  | 
            
| 38 | 
                - })  | 
            |
| 39 | 
                -  | 
            |
| 40 | 
                -  | 
            |
| 41 | 
                -def complement_code_list(request):  | 
            |
| 42 | 
                -    user_id = request.POST.get('user_id', '')
               | 
            |
| 43 | 
                -    page = request.POST.get('page', 1)
               | 
            |
| 44 | 
                -    num = request.POST.get('num', 20)
               | 
            |
| 45 | 
                -    type_ = request.POST.get('type', '')
               | 
            |
| 46 | 
                -  | 
            |
| 47 | 
                - logs = ComplementCodeLogInfo.objects.filter(user_id=user_id, status=True)  | 
            |
| 48 | 
                - if type_ == 'pass':  | 
            |
| 49 | 
                - logs = logs.filter(audit_status=ComplementCodeLogInfo.AUDIT_PASS)  | 
            |
| 50 | 
                -    logs = logs.order_by('-pk')
               | 
            |
| 51 | 
                -  | 
            |
| 52 | 
                - logs, left = pagination(logs, page, num)  | 
            |
| 53 | 
                - logs = [log.data for log in logs]  | 
            |
| 54 | 
                -  | 
            |
| 55 | 
                -    return response(200, 'Get Complement Code List Success', u'获取补码列表成功', data={
               | 
            |
| 56 | 
                - 'logs': logs,  | 
            |
| 57 | 
                - 'left': left,  | 
            |
| 58 | 
                - })  | 
            |
| 59 | 
                -  | 
            |
| 60 | 
                -  | 
            |
| 61 | 
                -@transaction.atomic  | 
            |
| 62 | 
                -def complement_code_audit(request):  | 
            |
| 63 | 
                -    log_id = request.POST.get('log_id', '')
               | 
            |
| 64 | 
                -    audit_status = int(request.POST.get('audit_status', 0))  # -1 审核不通过, 1 审核通过
               | 
            |
| 65 | 
                -  | 
            |
| 66 | 
                - if audit_status not in [ComplementCodeLogInfo.AUDIT_REFUSED, ComplementCodeLogInfo.AUDIT_PASS]:  | 
            |
| 67 | 
                - return response(ComplementCodeStatusCode.COMPLEMENT_CODE_STATUS_INVALID)  | 
            |
| 68 | 
                -  | 
            |
| 69 | 
                - try:  | 
            |
| 70 | 
                - log = ComplementCodeLogInfo.objects.select_for_update().get(log_id=log_id, status=True)  | 
            |
| 71 | 
                - except ComplementCodeLogInfo.DoesNotExist:  | 
            |
| 72 | 
                - return response(ComplementCodeStatusCode.COMPLEMENT_CODE_NOT_FOUND)  | 
            |
| 73 | 
                -  | 
            |
| 74 | 
                - if log.audit_status != ComplementCodeLogInfo.AUDIT_TODO:  | 
            |
| 75 | 
                - return response(ComplementCodeStatusCode.COMPLEMENT_CODE_HAS_AUDITED)  | 
            |
| 76 | 
                -  | 
            |
| 77 | 
                - log.audit_status = audit_status  | 
            |
| 78 | 
                - log.save()  | 
            |
| 79 | 
                -  | 
            |
| 80 | 
                - # if log.audit_status == ComplementCodeLogInfo.AUDIT_PASS:  | 
            |
| 81 | 
                - # # TODO: Send template_message  | 
            |
| 82 | 
                - # pass  | 
            |
| 83 | 
                -  | 
            |
| 84 | 
                - return response()  | 
            |
| 85 | 
                -  | 
            |
| 86 | 
                -  | 
            |
| 87 | 
                -@transaction.atomic  | 
            |
| 88 | 
                -def complement_code_contacted(request):  | 
            |
| 89 | 
                -    log_id = request.POST.get('log_id', '')
               | 
            |
| 90 | 
                -    is_contacted = int(request.POST.get('is_contacted', 0))  # 0 未联系, 1 已联系
               | 
            |
| 91 | 
                -  | 
            |
| 92 | 
                - try:  | 
            |
| 93 | 
                - log = ComplementCodeLogInfo.objects.select_for_update().get(log_id=log_id, status=True)  | 
            |
| 94 | 
                - except ComplementCodeLogInfo.DoesNotExist:  | 
            |
| 95 | 
                - return response(ComplementCodeStatusCode.COMPLEMENT_CODE_NOT_FOUND)  | 
            |
| 96 | 
                -  | 
            |
| 97 | 
                - log.is_contacted = is_contacted  | 
            |
| 98 | 
                - log.save()  | 
            |
| 99 | 
                -  | 
            |
| 100 | 
                - return response()  | 
            |
| 36 | 
                + })  | 
            
                @@ -240,8 +240,8 @@ urlpatterns += [  | 
            ||
| 240 | 240 | 
                ]  | 
            
| 241 | 241 | 
                 | 
            
| 242 | 242 | 
                urlpatterns += [  | 
            
| 243 | 
                - url(r'^complement/code$', complement_views.complement_code, name='complement_code'),  | 
            |
| 244 | 
                - url(r'^complement/code/list$', complement_views.complement_code_list, name='complement_code_list'),  | 
            |
| 245 | 
                - url(r'^complement/code/audit$', complement_views.complement_code_audit, name='complement_code_audit'),  | 
            |
| 246 | 
                - url(r'^complement/code/contacted$', complement_views.complement_code_contacted, name='complement_code_contacted'),  | 
            |
| 243 | 
                + url(r'^admin/complement/code$', complement_views.complement_code, name='complement_code'),  | 
            |
| 244 | 
                + url(r'^admin/complement/code/list$', admin_views.complement_code_list, name='complement_code_list'),  | 
            |
| 245 | 
                + url(r'^admin/complement/code/audit$', admin_views.complement_code_audit, name='complement_code_audit'),  | 
            |
| 246 | 
                + url(r'^admin/complement/code/contacted$', admin_views.complement_code_contacted, name='complement_code_contacted'),  | 
            |
| 247 | 247 | 
                ]  |